1. Field of the Invention
The present disclosure relates generally to packet networks, and more particularly to the operation of exterior gateway protocols within such networks.
2. Description of Related Art
In a packet network, “nodes” or “routers” share network address information that allows each node or router to forward packets toward their respective destination networks. For networks defined using the Internet Protocol, each node is provisioned with a network address that identifies the particular network the system is on, and with a system or host address that uniquely identifies the node. These addresses are shared among neighboring nodes to allow each router to build a “tree” with itself as the root node and next-hop paths from itself to every address on the network.
Routers use IP network, subnetwork, and host addresses to forward routed traffic within a packet network “autonomous system” (AS) according to an interior routing (or gateway) protocol (an “IGP”). Generally, an AS comprises a set of routers that are commonly administered, communicate with each other using one or more common IGPs and routing metric sets, and communicate with routers outside of the AS using an inter-AS (or exterior) gateway protocol (“EGP”). Regardless of the internal AS architecture, the AS presents to the world outside the AS, through the EGP, a consistent picture of the destinations that are reachable through it.
The Border Gateway Protocol (BGP) is currently the primary EGP used to route packets between the large number of ASes that, collectively, make up the “Internet.” BGP itself can function as either an interior gateway protocol or an exterior gateway protocol. When used as an EGP, BGP peers are located in different ASes. Each peer advertises to the other the networks/subnetworks that it can reach. BGP is a “path vector protocol”—BGP updates contain information detailing the AS-to-AS path that routing updates take to reach a router. From this path information, a BGP router can compare distance vectors for different possible routes to a destination and select a preferred route for each destination. BGP is defined in the Internet Engineering Taskforce (IETF) Request for Comments (RFC) 4271, “A Border Gateway Protocol 4 (BGP-4),” Y. Rekhter et al., Jan. 2006, which is incorporated herein by reference.
Each BGP speaker maintains a Routing Information Base (RIB) containing BGP update information. Within the RIB, unprocessed routing information received from the BGP speaker's peers is stored as “Adjacent-RIBs-In” information. As the BGP speaker processes the information, it creates “Local-RIB” information, indicating the preferred routes that the BGP speaker has actually selected to use. From among these selected Local-RIB routes, the BGP speaker selects “Adjacent-RIBs-Out” information to be advertised to each specific peer. When two BGP speakers are first peered, each sends the other, through a set of updates, the entire appropriate contents of the Adjacent-RIBs-Out database. Afterwards, incremental updates are used to inform the peer of new, changed, or withdrawn routes. Periodic KeepAlive messages exchanged by the peers insure each that the BGP connection is alive. Should the connection be closed for any reason by a BGP speaker, the speaker should send a Notification message, supplying a reason the connection is being closed, to the peer. When the BGP connection is closed, all routes that each peer has advertised to the other are removed from the RIB.